package main

import "fmt"

func main() {

	// 切片是可变长度的数组，任何时刻都可以更改长度
	// 使用make创建一个切片
	s := make([]string, 3)
	s[0] = "a"
	s[1] = "b"
	s[2] = "c"
	fmt.Println("get:", s[2])   // get: c
	fmt.Println("len:", len(s)) // len: 3

	// append追加元素（注意：必须返回赋值回去，因为内部容量不够时，会扩容新生成一个切片）
	s = append(s, "d")
	s = append(s, "e", "f")
	fmt.Println(s) // [a b c d e f]

	c := make([]string, len(s))
	// copy切片
	copy(c, s)
	fmt.Println(c) // [a b c d e f]

	// 切片裁剪
	fmt.Println(s[2:5]) // [c d e]
	fmt.Println(s[:5])  // [a b c d e]
	fmt.Println(s[2:])  // [c d e f]

	good := []string{"g", "o", "o", "d"}
	fmt.Println(good) // [g o o d]
}
